package com.vq.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * <h2>动态类</h2>
 */
@Data
public class Trends {
    @TableId(type = IdType.AUTO)
    Long id;//动态id
    String username;//用户名称
    String account;//用户账号
    String title;//动态标题
    String content;//动态内容
    String communityTags;//社区标签
    @TableField(exist = false)
    List<String> comTags = new ArrayList<>();
    Long critiqueNum;//评论数
    Long collectNum;//收藏数
    Long likesNum;//点赞数量
    String time;//动态发布时间

    public Trends() {
    }
    public Trends(Long id, String username, String account, String content) {
        this.id = id;
        this.username = username;
        this.account = account;
        this.content = content;
    }

    /**
     * 添加社区名称
     * @param name
     */
    public void addCommunityTags(String name) {
        if (this.communityTags==null) this.communityTags="";
        this.communityTags+="#"+name;
        this.comTags.add(name);
    }
    /**
     * 是否含有该社区标签
     * @param name
     * @return
     */
    public boolean isCommunityTags(String name) {
        return this.comTags.contains(name);
    }
    /**
     * 设置社区标签（转为数组）
     * @param trends
     */
    static public void addComTags(Trends trends) {
        if (trends.communityTags==null) return;
        String[] tags = trends.communityTags.split("#");
        Collections.addAll(trends.comTags, tags);
        trends.comTags.remove(0);
    }
    static public void addComTags(List<Trends> trendsList) {
        for (Trends trends : trendsList) {
            Trends.addComTags(trends);
        }
    }

    /**
     * 设置社区标签（转为字符串）
     * @param trends
     */
    static public void addCommunityTags(Trends trends) {
        if (trends.comTags==null) return;
        trends.communityTags="";
        for (String comTag : trends.comTags) {
            trends.communityTags += "#"+comTag;
        }
        System.out.println(trends);
    }
}
